#ifndef __DISTRIBUTECOOKIE__
#define __DISTRIBUTECOOKIE__
#include <vector>
#include <algorithm>
using namespace std;
/*
* 来源：力扣（LeetCode） 链接：https://leetcode-cn.com
* 问题描述：假设你是一位很棒的家长，想要给你的孩子们一些小饼干。
* 但是，每个孩子最多只能给一块饼干。
* 对每个孩子 i ，都有一个胃口值 gi ，这是能让孩子们满足胃口的饼干的最小尺寸；
* 并且每块饼干 j ，都有一个尺寸 sj 。
* 如果 sj >= gi ，我们可以将这个饼干 j 分配给孩子 i ，这个孩子会得到满足。
* 你的目标是尽可能满足越多数量的孩子，并输出这个最大数值。
*/
/*
* 输入 [1, 2, 3], [1, 1]
* 输出 1
* 左边对应胃口，右边对应尺寸
*/
/*
* 解题思路：
* 尽量先满足胃口值小的孩子，因为这样的孩子容易满足。
* 进行条件1时，尽可能选用尺寸小的，这样大尺寸饼干可以用来满足胃口值大的孩子。
*/
int DistibuteCookie(vector<int>& appetites, vector<int>& sizes) {
	int result = 0;

	//胃口、尺寸从小到大排序
	sort(appetites.begin(), appetites.end());
	sort(sizes.begin(), sizes.end());

	for (int i = 0; i < sizes.size(); i++) {
		if (i >= appetites.size())
			break;

		if (sizes[i] >= appetites[i])
			result++;
	}

	return result;
}

#endif